﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using hercules.Models.Dados;

namespace hercules.Models.Negocio
{
    public class NegocioProduto 
    {
        private readonly IRepositorioGenerico<Produto, ControleEstoqueEntities> repositorioProduto;

        public NegocioProduto()
        {
            repositorioProduto = new RepositorioGenerico<Produto, ControleEstoqueEntities>("chave");
        }


        public bool Inserir(Produto produto)
        {
            repositorioProduto.Inserir(produto);
            return repositorioProduto.SaveChanges() > 0;
        }

        public bool Editar(Produto produto)
        {
            Produto _produto = Obter(produto.idProduto);
            _produto.codigoBarra = produto.codigoBarra;
            _produto.dataVencimento = produto.dataVencimento;
            _produto.descontoMaximo = produto.descontoMaximo;
            _produto.apelido = produto.apelido;
            _produto.icms = produto.icms;
            _produto.ipi = produto.ipi;
            _produto.lote = produto.lote;
            _produto.naturezaCFOP = produto.naturezaCFOP;
            _produto.ncm = produto.ncm;
            _produto.precoNota = produto.precoNota;
            _produto.precoReal = produto.precoReal;
            _produto.precoVenda = produto.precoVenda;
            _produto.unidade = produto.unidade;

            //repositorioProduto.Attach(produto);

            return repositorioProduto.SaveChanges() > 0;
        }

        public bool Remover(Int32 codProduto)
        {
            repositorioProduto.Remover(produto => produto.idProduto == codProduto);
            return repositorioProduto.SaveChanges() > 0;
        }

        public List<Produto> ObterTodos()
        {
            return repositorioProduto.ObterTodos().ToList();
        }

        public Produto Obter(int codProduto)
        {
            return repositorioProduto.ObterEntidade(produto => produto.idProduto == codProduto);
        }
    }
}